Ä Fido Pascal Conference ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ PASCAL Ä Msg : 418 of 448 From : Bernie Pallek 1:247/128.0 24 Jul 93 11:10 To : Matthew Mclin Subj : (2/2) Digital Sound ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ MM> Does anybody know the format of .MOD/.SAM/.WAV/.VOC file? Amiga Protracker Module Format +------++-----++-----------+ |Offset||Bytes||Description| ++------++-----++-----------+--------------------------------------------- || 0 20 Module name. Padded with spaces until the end (or should || be). Remember to only print 20 characters. |+-Samples---------------------------------------------------------------- || 20( 0) 22 Sample Name. Should be padded with nulls for the full || length of it after the sample name. || 42(22) 2 Sample Length. Stored as an Amiga word which needs to be || swapped on an IBM. This word needs to be multiplied by || two to get the real length. If the initial length is || greater than 8000h, then the sample is greater than 64k. || 44(24) 1 Sample Finetune Byte. This byte is the finetune value for || the sample. The upper four bits should be zeroed out. || The lower four are the fine tune value. || Value : 0 1 2 3 4 5 6 7 8 9 A B C D E F || = Finetune: 0 +1 +2 +3 +4 +5 +6 +7 -8 -7 -6 -5 -4 -3 -2 -1 || 45(25) 1 Sample Volume. The rangle is always 0..64 || 46(26) 2 Sample Repeat. Stored as an Amiga word. Multiply this by || two and add it to the beginning offset of the sample to || get the repeat point. || 48(28) 2 Sample Repeat Length. Stored as an Amiga word. Multiply || this by two to get the Repeat Length. |+------------------------------------------------------------------------- || *** The remaining 14 or 30 samples follow this point *** || *** using the same format as above. Note that the *** || *** rest of this module format follows a 31 sample *** || *** format, which is not different from the 15 *** || *** sample format except for the file offset. *** |+------------------------------------------------------------------------- || 950 1 The Song Length in the range of 1 to 128. || 951 1 I don't know. I was told that Noisetracker uses this byte || for a restart, but I don't use Noisetracker. Anyone || have any info? || 952 128 Play Sequences 0-127. These indicate the appropriate || pattern to play at this given position. ||1080 4 If this position contains: "M.K." or "FLT4" or "FLT8" || - the module is 31 ins. |+-Patterns---------------------------------------------------------------- ||1084(0) 1 Upper 4 bits: MSB of the instrument. Must be ORed with || the LSB. Lower 4 bits: Upper 4 bits of the period. ||1085(1) 1 Contains the lower 8 bits of the period. ||1086(2) 1 Upper 4 bits: LSB of the instrument. Must be ORed with || the MSB. Lower 4 bits: Special effects command. || Contains a command 0-F. ||1087(3) 1 Special effects data. |+------------------------------------------------------------------------- || *** The number of patterns is the highest pattern *** || *** number stored in the Play Sequence list. *** |+------------------------------------------------------------------------- || Each note is four bytes long. Four notes make up a track. They are || stored like this: || 0-3 4-7 8-11 12-15 || Channel 1 Channel 2 Channel 3 Channel 4 || 16-19 20-23 24-27 28-31 || Channel 1 Channel 2 Channel 3 Channel 4 || ...and so on. || || 00 00 00 00 || || || || || || /\ // /\ \\ || MSB of Ins. Note LSB Ins. Spec. Com. Data for special || || The samples immediately follow. ++-------------------------------------------------------------------------